import datetime
import string
import time
from faker import Faker

fake = Faker(locale='zh_CN')


# 随机生成手机号
def rdm_phone_number():
    return fake.phone_number()


# 生成当前时间戳 默认秒级别
def cur_timestamp(level='s'):
    if level == 's':
        return int(time.time())
    elif level == 'ms':
        return int(time.time() * 1000)
    else:
        raise Exception(f'{level}不支持')


# 生成当前时间
def cur_date():
    return fake.date_time_between_dates()


# 随机生成日期  年月日
def rdm_date(pattern='%Y-%m-%d'):
    return fake.date(pattern=pattern)


# 随机生成日期  年月日时分秒
def rdm_date_time():
    return fake.date_time()


# 生成某一个时间段的时间戳   +0d 表示0天 就是当前的日期    +1d当前日期的第二天
def gen_timestamp(start_date='+0d', end_date='+1d'):
    date_time = fake.date_time_between(start_date=start_date, end_date=end_date)
    print(date_time)
    # 将日期转元组 --转换时间戳 -- int
    return int(time.mktime(date_time.timetuple()))


# 计算两个时间戳之前相差多少天
def get_days_difference(timestamp1, timestamp2):
    # 转换对象
    date1 = datetime.datetime.fromtimestamp(timestamp1)
    date2 = datetime.datetime.fromtimestamp(timestamp2)
    # 计算差值
    diff = date2 - date1
    # 提取差值天数
    days = diff.days
    return days

def generate_string(length):
    # 使用faker生成指定长度的字母和数字组合
    return ''.join(fake.random_element(string.ascii_letters + string.digits) for _ in range(length))

def generate_test_title(length,name='test_'):
    # 使用faker生成指定长度的字母和数字组合
    return name+''.join(fake.random_element(string.ascii_letters + string.digits) for _ in range(length))

if __name__ == '__main__':
    # print(rdm_phone_number())
    # print(cur_timestamp())
    # print(cur_date())
    # print(rdm_date())
    # print(rdm_date_time())
    # t1 = gen_timestamp()
    # t2 = gen_timestamp(start_date='+10d', end_date='+40d')
    # print(get_days_difference(t2, t1))

    string_length = 5
    # print(generate_string(string_length))
    print(generate_test_title(string_length,"车缝1组_"))

